package com.caishi.lkx.exam.records;

import com.caishi.lkx.exam.records.dto.*;

/**
 * 做题记录设置接口
 */
public interface RecordsSetDataService {
    /**
     * 获取科目做题数统计
     *
     * @param industryCode 行业code
     * @param examId       考试id
     * @param categoryId   科目id
     * @return key
     */
    String setCategoryCountRecordsData(String userId, RecordsCountRecordDto data, String industryCode, String examId, Long categoryId);


    /**
     * 设置章节练习章节的做题记录
     *
     * @param data         做题记录
     * @param industryCode 行业code
     * @param examId       考试id
     * @param categoryId   科目id
     * @param chapterId    章节id
     * @return key
     */
    String setQuestionRecordsData(String userId, QuestionRecordsDto data, String industryCode, String examId, Long categoryId, RecordsCollectType type, String id);

    /**
     * 设置集合做题数量统计
     *
     * @param userId
     * @param data
     * @param industryCode 行业code
     * @param examId       考试id
     * @param categoryId   科目id
     * @param type
     * @param id
     * @return key
     */
    String setCollectCountRecordsData(String userId, RecordsCountRecordDto data, String industryCode, String examId, Long categoryId, RecordsCollectType type, String id);

    /**
     * 设置科目下最新错题记录
     *
     * @param industryCode 行业code
     * @param examId       考试id
     * @param categoryId   科目id
     * @return key
     */
    String setErrorRecordsData(String userId, NewQuestionRecordsDto data, String industryCode, String examId, Long categoryId);


    /**
     * 设置科目下最新收藏记录
     *
     * @param industryCode 行业code
     * @param examId       考试id
     * @param categoryId   科目id
     * @return key
     */
    String setCollectRecordsData(String userId, NewQuestionRecordsDto data, String industryCode, String examId, Long categoryId);


    /**
     * 设置集合下的错题集合
     *
     * @param userId
     * @param data
     * @param industryCode
     * @param examId
     * @param categoryId
     * @param type
     * @param id
     * @return
     */
    String setErrorInCollectData(String userId, CollectionErrorAndCollectRecordDataDto data, String industryCode, String examId, Long categoryId, RecordsCollectType type, String id);


    /**
     * 设置集合下收藏数据
     *
     * @param userId
     * @param data
     * @param industryCode 行业code
     * @param examId       考试id
     * @param categoryId   科目id
     * @param type
     * @param id
     * @return key
     */
    String setCollectInCollectionData(String userId, CollectionErrorAndCollectRecordDataDto data, String industryCode, String examId, Long categoryId, RecordsCollectType type, String id);

    /**
     * 用户科目下做题集合记录
     *
     * @param userId
     * @param industryCode
     * @param examId
     * @param categoryId
     * @return
     */
    String setCategoryCollectRecordsData(String userId, CategoryCollectRecordsDto data, String industryCode, String examId, Long categoryId);

    /**
     * 设置栏目下视频观看记录
     * @param userId 用户id
     * @param data 数据
     * @param industryCode 行业code
     * @param examId 考试id
     * @param categoryId 科目id
     * @param columnId 栏目id
     * @param chapterId 章节id
     * @return
     */
    String setVideoRecordsData(String userId, VideoRecordsDto data, String industryCode, String examId, Long categoryId, String columnId, String chapterId);

    /**
     * 设置章节视频观看记录统计
     * @param userId 用户id
     * @param data   数据
     * @param industryCode 行业code
     * @param examId 考试id
     * @param categoryId 科目id
     * @param columnId 栏目id
     * @param chapterId 章节id
     * @return
     */
    String setCountVideoRecordsData(String userId, CountVideoRecordsDto data, String industryCode, String examId, Long categoryId,String columnId,String chapterId);

    /**
     * 设置栏目下视频观看记录统计
     * @param userId 用户id
     * @param data
     * @param industryCode
     * @param examId
     * @param categoryId
     * @param columnId
     * @return
     */
    String setCountColumnVideoRecordsData(String userId, CountVideoRecordsDto data, String industryCode, String examId, Long categoryId,String columnId);
}
